/*****************************
 *@file: ActiveSkill
 *@author: 陈吕唐
 *@desc: 激活技能(CD好了 就释放)
 *@date: 2024-03-21	12:51
 *****************************/
import { _decorator } from 'cc';
import { BaseAnimationSkill } from './BaseAnimationSkill';
const { ccclass, property } = _decorator;

@ccclass('ActiveSkill')
export class ActiveSkill extends BaseAnimationSkill {
    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/

    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    /**
     * 倒计时
     */
    private _downTime: number = 0;

    /***************************************************************
     *PropertyUI 引用的控件
     ***************************************************************/

    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/
    protected lateUpdate(dt: number): void {
        super.lateUpdate(dt);
        this.downTime -= dt;
    }
    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/

    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    protected release(): void {
        this.downTime = this.CD_TIME;
    }
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/

    /**
     * 倒计时
     */
    private get downTime(): number {
        return this._downTime;
    }

    private set downTime(value: number) {
        this._downTime = value;
        if (value <= 0) {
            this.release();
        }
    }
}


